package exception;

/**
 * 异常的抛出
 * throw关键字用于主动对外抛出一个异常,通常下列情况我们会主动抛出异常:
 * 1:当前代码片段出现了一个异常,但是该异常不应当在当前代码片段部分被解决
 *   时,可以将异常抛出给调用者解决
 * 2:程序可以正常运行,但是不满足业务场景需求时可以将其视为异常抛出给调用
 *   者.
 */
public class ThrowDemo {
    public static void main(String[] args) {
        Person p = new Person();
        //满足语法(程序可以运行),但是不满足业务场景
        try {
            /*
                当我们调用一个含有throws声明异常抛出的方法是,编译器
                要求必须处理该异常,处理方式有两种:
                1:在当前方法上继续使用throws声明该异常的抛出
                2:使用try-catch自行捕获并处理这个异常
                具体是继续对外抛出还是自行捕获取决于异常处理的责任问题
             */
            p.setAge(10000);
        } catch (IllegalAgeException e) {
            e.printStackTrace();
        }

        System.out.println("此人年龄:"+p.getAge()+"岁");
    }
}
